package com.shuyuansystem.dao;

import com.shuyuansystem.pojo.CheckOrders;
import com.shuyuansystem.pojo.OrderList;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface OrderListMapper {
    List<OrderList> findOrdersByUserId(String userId, int offset, int pageSize);
    Long getTotalCountByUserId(String userId);

    // 新增方法，查询每个 user_id 对应的不同 merchant_id 列表
    @MapKey("user_id")
    Map<String, Map<String, Object>> getMerchantIdListByUserId(@Param("userId") String userId);
    // 新增方法，根据 userId 和 merchantIdList 查询订单列表
    List<OrderList> getOrdersByUserIdAndMerchantIds(@Param("userId") String userId, @Param("merchantIds") List<String> merchantIds);
    /**
     * 根据 userId 查询订单列表
     * @param userId 用户 ID
     * @return 符合条件的订单列表
     */
    List<OrderList> findOrdersByUserId(@Param("userId") String userId);
    /**
     * 更新订单列表中的商家订单号
     * @param userId 用户 ID
     * @param merchantId 商家 ID
     * @param merchantOrderNumber 商家订单号
     * @return 更新的记录数
     */
    int updateMerchantOrderNumber(@Param("userId") String userId, @Param("merchantId") String merchantId, @Param("merchantOrderNumber") String merchantOrderNumber);
    // 新增方法：查询对应 userId 且 merchant_order_number 为空的行
    List<OrderList> getAllByMerchantOrderNumber(String MerchantOrderNumber);

    List<OrderList> getByMerchantOrderNumbers(@Param("merchantOrderNumbers") List<String> merchantOrderNumbers);

    int deleteByMerchantOrderNumber(@Param("merchantOrderNumber") String merchantOrderNumber);
}


